The present invention relates to methods for controlling the status of an internal memory (buffer) of a recorder for data carriers for compensating for differences in speed between a data-processing/transmitting device and the recorder, and furthermore relates to devices for controlling the status of an internal memory (buffer) for a recorder for data carriers for compensating for differences in speed between a data-processing/transmitting device and the recorder.
In known software programs for inscribing data carriers, a query command is sent after each record command, after every second record command, or after every third record command. This query command determines the amount of internal memory in use. The result is either provided to the user or is used to control the recorder. The query command takes a few milliseconds, depending on the interface. It can happen that the query takes too much time and the writing process therefore suffers an error so that there is a so-called buffer underrun. The internal memory (buffer) of the recorder is empty, the recorder cannot continue with its task due to a lack of data and must interrupt the inscription of the data carrier. Normally the data carrier in question becomes unusable when such an error occurs, even if a few recorders or programs attempt to close the affected session automatically in order at least to make accessible the data that have already been written.
Additional methods (see also xe2x80x9cBurn-Proofxe2x80x9d or xe2x80x9cJust Linkxe2x80x9d) attempt to prevent buffer underruns. The laser for recording the data carrier is stopped if the quantity of data in the internal memory drops below a certain level. This level is, for instance, 10% in use; thus 90% of the internal memory capacity is empty. The writing or recording process is not re-started until the amount of memory in use exceeds a certain level. This can occur as often as desired so that the buffer underrun is avoided.
It is an object of the present invention to provide a method and a device for determining the status of the internal memory of a recorder for data carriers at any time and thus placing less stress on the transmission bus.
The method of the present invention is characterized by the steps, at least in the working phase of the recorder, of measuring the time, counting the number of issued record commands, and between checks and/or after a check of the status of the internal memory, determining an actual status after a predetermined or predeterminable time, or after predetermined or predeterminable time intervals, since the last check, recording speed, amount of internal memory, and number of record commands issued.
The device of the present invention is characterized primarily by a time measuring device for at least the working phase of the recorder; a device for counting the number of issued record commands; and a device for determining, between checks and/or after a check of the status of the internal memory, the actual status after a predetermined or predeterminable time, or after predetermined or predeterminable time intervals, since the last check, including the recording speed, the amount of internal memory, and the number of record commands issued, wherein the time measuring device, the device for counting, and the device for determining are all components of a control of the recorder.
The advantages achieved with the invention are in particular that the amount of used internal memory (buffer) of a recorder, in particular of a CD (compact disc)/DVD (digital versatile disk)-recorder, CD/DVD writer, or CD/DVD burner, is known for such data carriers. This amount can be provided to the user in order to provide him more information about the burn process, and/or can be used to control the recording process (burn process).
The following methods are among those used for inscribing these data carriers:
Track-at-once, whereby the recording laser beam is turned off after each written track and is turned on again when recording a new track so that introductory and concluding blocks (run-in/run-out blocks) are recorded between the individual tracks;
Disc-at-once, whereby a plurality of tracks are recorded without turning the laser beam off and the data carrier is automatically finalized so that no additional tracks can be added;
Session-at-once, whereby a complete session (one or more tracks of any desired type, data or audio, comprising lead-in, program area, and lead-out) is recorded in one pass and one data carrier can be provided with a plurality of sessions (multi-session); and,
Packet-writing, whereby substantially smaller blocks are recorded compared to the aforesaid method.
When using these methods, the data to be recorded, for instance video, audio, programs, databases, etc., are transmitted in real time to the recorder, which then records the data onto the CD or DVD.
Prior to recording, the recorder stores the data transmitted via interface, for instance IDE, SCSI, IEEE1394, or USB, in the internal memory (buffer). The data from this internal memory are stored on the data carrier. If the unused internal memory in the recorder approaches the size of the overall internal memory, that is, there are increasingly fewer data in this internal memory, a so-called buffer underrun becomes more and more probable. If the internal memory is empty, the laser aborts its recording process and the buffer underrun has occurred. This renders the data carrier, or at least the track that has been written, unusable.
In many known software programs for recording to the data carrier, after each record command, after every other record command, or after every second or every third record command, the program sends a command querying how much of the internal memory is in use in order then to provide this information to the user or to control the recording process as appropriate. The query command takes a few milliseconds, depending on the interface. It can happen that the query takes too much time and the writing therefore suffers an error so that there is a so-called buffer underrun. However, this query is essential, because otherwise the user does not obtain any information or it is no longer possible for the recording software to control the recording process.
The essential advantage of the inventive solutions is that at least in the working phase of the recorder, the time is measured, the number of record commands issued are counted, and, between checks and/or after a check of the status of the internal memory, determining a current status after a pre-determined or pre-determinable time, or pre-determined or pre-determinable time intervals, since the previous check, the recording speed, the amount of internal memory, and the number of record commands issued.
This means that the status of the internal memory is read out less frequently, substantially reducing the risk of a buffer underrun occurring.
The inventive solutions can furthermore be employed in recorders that have methods for avoiding the buffer underrun (for instance, xe2x80x9cBurn-Proofxe2x80x9d, xe2x80x9cJust Linkxe2x80x9d). Although no buffer underrun occurs during these methods, when the data in the internal memory drop below a threshold, the recording process is stopped for a few seconds, increasing the total recording time.
One simple option for calculating the status of the amount of internal memory currently in use is to use the equation:
Xnew=Xold+(A*B)xe2x88x92(t*Y),
where
Xnew is the amount of memory currently in use, in bytes
Xold is the amount of memory in use when last checked, in bytes
A is the number of blocks transmitted since Xold
B is the block size of blocks transmitted, in bytes
t is the time in seconds, and
Y is the burn speed in bytes per second.
When this equation is applied, it is possible to read out the status of the internal memory at longer intervals without incurring a significant loss of information about the status. In one variant this could occur due to a one-time reading out at the beginning of the recording process, whereby the following conditions are merely calculated.
In accordance with further developments of the present invention, the status of the internal memory is read out at regular time intervals, whereby the newly read-out value X is used, as the amount of internal memory of the recorder in use, for a new reference value. This makes it possible to provide a continuous and substantially more accurate status to the user.
The effect of this continuous approximation to the actual status of the internal memory is that the command for reading out the internal memory is called up less frequently and yet knowledge about the status of the internal memory is better. The load on the interfaces is reduced due to fewer commands for determining the status of the internal memory, and the recorder can transmit more record commands more rapidly while fewer buffer underruns occur.
In a further development of the present invention, whereby the time for performing the xe2x80x9cread out amount of buffer in usexe2x80x9d command is measured, and when a pre-determinable period of time has been exceeded this command is called up even less frequently and in between the amount of memory in use is calculated using the equation, all of which leads to recorders that require a particularly long time for this command so that the opportunity for the buffer underrun is reduced even further.
If the internal memory is in use and therefore cannot receive any additional data, but if additional data are nevertheless still sent from the data-processing/transmitting device, these data are either refused or the period for recording the data is substantially greater. The data must be re-sent or the recorder waits until the internal memory has enough room to receive these data. Both instances lead to an increase in the period for recording to the data carrier. The transmission of data is blocked during these processes and no other functions can take place during this time. This is avoided by further developments of the present invention, whereby the internal memory of the recorder in use is less than or equal to 100% of the device acquiring the data in the data-processing/transmitting device.
The inventive control device is particularly advantageous in accordance with a further development of the invention for data carriers in the form of CDs (compact discs) or DVDs (digital versatile disks). Recorders for these data carriers are advantageously a CD burner, a CD burner with read mode, a DVD burner, or a DVD burner with read mode.